#pragma once 
/*
noncopyable被继承之后，派生类无法进行拷贝构造和赋值操作
*/
class noncopyable {
    public:
        //删除拷贝构造函数和赋值重载
        void operator=(const noncopyable&) = delete;
        noncopyable(const noncopyable&) = delete;
    protected:
        noncopyable() = default;
        ~noncopyable() = default;
};